package dao;

import java.io.Serializable;
import java.util.List;

import modelo.Combobebidaxsalon;
import modelo.Propietario;
import modelo.Servicioadicional;
import modelo.Servicioadicionalxsalon;

import org.hibernate.Criteria;
import org.hibernate.FetchMode;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;

import util.HibernateUtil;

public class ServicioAdicionalDao implements Serializable{

		private static final long serialVersionUID = -1751632032341553241L;
	private Session session;
	SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
	
	public ServicioAdicionalDao() {
		super();
	}

	public ServicioAdicionalDao(Session session, SessionFactory sessionFactory) {
		super();
		this.session = session;
	}

	public List<Servicioadicional> obtenerServicioAdicional() {
		session=sessionFactory.openSession();
		
		Query query = session.createQuery("SELECT sa FROM Servicioadicional sa");
		List<Servicioadicional> sa = query.list();
		
		session.close();
		
		return sa;
	}
	
	public Servicioadicional obtenerServicioAdicionalById(int id){
		session=sessionFactory.openSession();
		Query query = session.createQuery("from Servicioadicional where IdServicio = :id ");
        query.setParameter("id", id);

        List<?> list = query.list();

        Servicioadicional sa = (Servicioadicional)list.get(0);
        return sa;
	}
	
	public void guardarServicioAdicional(Servicioadicional sa){
		session=sessionFactory.openSession();
		session.beginTransaction();
		session.saveOrUpdate(sa);
		session.getTransaction().commit();
		session.close();
	}

	public void eliminarServicioAdicional(Servicioadicional sa) {
		session=sessionFactory.openSession();
		session.beginTransaction();
		session.delete(sa);
		session.getTransaction().commit();
		session.close();
	}

	public List<Servicioadicional> obtenerServicioAdicional(Integer id) {
		session=sessionFactory.openSession();
		
/*		Criteria crit = session.createCriteria(Servicioadicional.class)
		        .add(Restrictions.eq("servicioadicionalxsalons.salon.idSalon", salonSel));*/
		
		Query query = session.createQuery("from Servicioadicional where idServicio = 1 or idServicio=4 or idServicio=3");
        
		List<Servicioadicional> p= query.list();
/*		
		Criteria cr = session.createCriteria(Servicioadicional.class);
		
		cr.add(Restrictions.eq("salon.idSalon", salonSel));
		List<Servicioadicional> ca= cr.list();*/
		session.close();

		return p;
		
	}


}

